#ifndef _edaMySolution_h_
#define _edaMySolution_h_

#include <vector>

#include "edaSolution.h"
#include "myDefine.h"
#include "graph.h"

class mySolution: public vector<unsigned int>, public edaSolution
{
 public:
  mySolution();
  mySolution(const Graph &_graph);
  mySolution(const Graph &_graph, const mySolution &sol);
  // Copy constructor
  mySolution(const mySolution &sol);

  ~mySolution();

  void init();
  edaSolution* clone() const;
  double fullEvaluate();
  double partialEvaluate();
  void Serialize( edaBuffer &buf, bool pack );
  void printOn(ostream &os) const;
  edaSolution& operator = (const edaSolution &sol);
  bool operator == (const edaSolution &sol) const;
  void setModified( bool status = true );

  setClassID(_USERCLASSID_ + _CLSID_MY_SOLUTION_);

 private:
  Graph *graph;
  bool modified;
  double cost;
};

#endif
